|
|
[crossposted from povray.general]
On Thu, 29 Jul 1999 12:41:36 +0100, Andrew Cocker wrote:
>Apologies if this is not the best places to ask this question ( I'm only
>subscribed to .general and .binaries.images at the moment ).
povray.unofficial.patches is generally considered the best place for
these questions. I've set followups to there.
[...]
>Firstly, I modified Gilles Tran's Egg scene as follows. I wanted to use
>splines to change a couple of the values, but I always get an error. After
>this, I have to restart POV as it will not render any other isosurface.
Well, that clearly shouldn't happen. I'll have to look at that one.
>I initially tried using Colefax's AutoClck.mcr to change the same values,
>but that didn't work either. Is there a problem with using declared
>variables within an isosurface function? I *really* want to be able to
>animate isosurfaces.
Keep in mind that splines are not declared variables. They're closer
to macros than to variables. To use one, you'll probably have to
declare a variable first. Try this:
----------- cut here -------->8==========
#declare pos1=spline {
linear_spline
0, 0.04
1, 0.4
}
#declare pos2=spline {
linear_spline
0, 0.04
0.5, 0.4
1, 0.04
}
#declare vpos1 = 0+pos1(clock);
#declare vpos2 = 0+pos2(clock);
#declare Egg=isosurface {
function{ sqrt(x*x +y*y*0.5 +z*z) -5 + noise3d(x*1,y*1,z*1)*vpos1 +
noise3d(x*6,y*6,z*6)* vpos2 -0.125}
bounded_by{ box {-8,8}}
eval
threshold 0
method 2
scale 1
}
----------- cut here -------->8==========
>Also, where can I get more information on how they work, or more
>specifically to explain the mathematic gibberish that resides inside the
>function statement :-) ?
An isosurface is the surface formed when you put an infinitesimal dust
mote at each and every point where a function is equal to a specific
value. In the case of the egg, the function is that of an ellipsoid,
modified by a couple of noise functions at different scales. Any decent
3d geometry book or website should be able to help you with the equations.
>Secondly, I can't work out how to access the inbuilt isosurface functions
> that the doc says are in there ), like sphere, superellipsoid etc. Can
>anyone help?
The syntax is tricky and I messed up the documentation as well. The
proper syntax is like this:
function{ "sphere" <5> }
Both the quotes and the angle brackets are necessary.
Post a reply to this message
|
|